package com.wn;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.wn.bean.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;

import javax.annotation.Resource;

/**
 * @author yellow Docter
 * @date 2023 -06-19
 * @desc
 */
@SpringBootTest
public class RedisTest03 {

    /**
     *   RedisTemplate<String,Object>
     *       存储的值是: object 类
     *
     *  ioc容器初始化的时候?
     *  @Bean
     * 	@ConditionalOnMissingBean(name = "redisTemplate")
     * 	public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
     * 			throws UnknownHostException {
     * 		RedisTemplate<Object, Object> template = new RedisTemplate<>();
     * 		template.setConnectionFactory(redisConnectionFactory);
     * 		return template;
     * 	}
     *
     * 	  这个可以注入进来吗 （不能注入进来 、ioc容器中没有 ）
     *    @Autowired
     *    private RedisTemplate<String,User> myRedisTemplate;
     *    private RedisTemplate<String,Object> myRedisTemplate;
     *
     *    非要注入: RedisTemplate<String,User> myRedisTemplate; ?
     *    自己写一个 注入到ioc容器中、你的名称不要和 ioc容器中的自动装配的 名称 redisTemplate 一致 、改成自己的就可以
     *
     */

    @Autowired //从ioc 容器中的 类型 装配
//    @Resource  // 从ioc容器中 名称进行装配
    private RedisTemplate<Object,Object> redisTemplate;

    @Test
    public void demo01(){

        User user = new User();
        user.setName("abc");
        user.setId(11);

        //存储
        redisTemplate.opsForValue().set("u2",user);

        //获取
        User user1 = (User) redisTemplate.opsForValue().get("u2");

        System.out.println("user1 = " + user1);
    }

}
